package com.sxj.corejava.code09_集合.Collections;

import java.util.*;

/**
 * @author 石小俊
 * @date 2025年02月20日
 */
public class Test01_工具类 {

    public static void main(String[] args) {
//        List<Integer> list = new ArrayList<>(Arrays.asList(1, 3, 6, 8, 2, 9, 7));
        List<Integer> list = new ArrayList<>();
//        list.add(1);
//        list.add(3);
//        list.add(2);

        Collections.addAll(list, 1, 3, 6, 8, 12, 3, 9, 7, 3);
        System.out.println(list);
        List<String> names = new ArrayList<>();
        Collections.addAll(names, "jack", "admin", "tom", "Michael", "Christopher");
        System.out.println(names);

        System.out.println("集合中的最大值:" + Collections.max(list));
        System.out.println("集合中的最大值:" + Collections.max(names));
        System.out.println("集合中的最小值:" + Collections.min(list));
        System.out.println("集合中的最小值:" + Collections.min(names));

        // 排序
        Collections.sort(list);
        Collections.sort(names);
        System.out.println(list);
        System.out.println(names);

        // 自定义排序
        // 对list集合进行降序排序
        Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                // 降序
                if (o1 > o2) {
                    return -1;
                } else if (o1 < o2) {
                    return 1;
                }
                return 0;
            }
        });
        System.out.println(list);

        // 对names集合根据字符串长度进行升序排序
        Collections.sort(names, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                if (o1.length() > o2.length()) {
                    return 1;
                } else if (o1.length() < o2.length()) {
                    return -1;
                }
                return 0;
            }
        });
        System.out.println(names);

        // 将集合中的元素颠倒过来
        Collections.reverse(list);
        Collections.reverse(names);
        System.out.println(list);
        System.out.println(names);

        Collections.replaceAll(list, 3, 13);
        System.out.println(list);

        Collections.swap(names, 0, 4);
        System.out.println(names);

        Collections.fill(list, 1);
        System.out.println(list);
    }

}
